package exception02;
/*
* 手动处理异常
*   我们可以通过throw关键字抛出一个异常
*   格式:throw new 异常类对象构造方法;
* 注意事项:
*   1.一旦执行throw new 异常类对象构造方法;该语句下面的代码都不会执行
*   2.throw抛出的只能是异常体系的类,不能是其他类,例如String
*
* */
public class ExceptionDemo02 {
    public static void main(String[] args) {
        int[] arr = new int[3];
/*        int i = method(arr, 1);
        System.out.println(i);//0*/

   /*     int i1 = method(null, 1);
        System.out.println(i1);*/

        int i = method(arr, 5);
        System.out.println(i);

    }

    /**
     *
     * @param arr 传入指定的数组
     * @param index 指定的索引
     * @return 该数组中指定索引的值
     */
    public static int method(int[] arr, int index) {
        if(arr==null){
            throw new NullPointerException("arr的值不能为null");
        }
        if (!(index >= 0 && index <= arr.length)) {
            throw new ArrayIndexOutOfBoundsException(index + "超出了数组的索引范围");
        }
        return arr[index];
    }
}
